package com.xzk.dao;

import com.xzk.bean.Courier;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface CourierDao {
    /**
     * @Author 0715-YuHao
     * @Description 用于用于查询数据库中的全部快递员（总数+新增）
     * @Date 15:41 2020/9/14
     * @Param []
     * @return [{size:总数,daySize:新增}]
     **/
    Map<String,Integer> console();

    /**
     * @Author 0715-YuHao
     * @Description 查询所有快递员信息
     * @Date 15:43 2020/9/14
     * @return 快递员的集合
     **/
    List<Courier> findAll();

    /**
     * @Author 0715-YuHao
     * @Description 更新登录时间
     * @Date 2020/9/16 9:27
     * @Param [userPhone]
     * @return boolean
     */
    void updateLoginTime(String userPhone);

    /**
     * @Author 0715-YuHao
     * @Description 通过电话号码查询快递员信息
     * @Date 15:44 2020/9/14
     * @Param [phone] 要查询的电话号码
     * @return 快递员的信息，电话不存在时返回null;
     **/
    Courier findByPhone(String phone);

    /**
     * @Author 0715-YuHao
     * @Description 快递员注册
     * @Date 15:46 2020/9/14
     * @Param [courier] [要注册的快递员信息]
     * @return 注册的结果，true表示成功，false表示失败
     **/
    int insert(Courier courier);

    /**
     * @Author 0715-YuHao
     * @Description 派单数加1
     * @Date 22:36 2020/9/17
     * @Param [userPhone] [快递员手机号码]
     * @return boolean
     **/
    int numberDispatchAddOne(String userPhone);

    /**
     * @Author 0715-YuHao
     * @Description 修改快递员
     * @Date 15:49 2020/9/14
     * @Param [id, newCourier] [要修改的快递员id, 新的快递员对象(name, phone, idCard, password)]
     * @return 修改的结果，true表示成功，false表示失败
     **/
    int update(Map map);
    /**
     * @Author 0715-YuHao
     * @Description 微信端修改用户信息
     * @Date 10:46 2020/9/18
     * @Param [userPhone]
     * @return boolean
     **/
    int updateByWx(Map map);

    /**
     * @Author 0715-YuHao
     * @Description 删除快递员
     * @Date 15:53 2020/9/14
     * @Param [id] [要删除的快递员id, 手机号码，身份证号码]
     * @return 删除的结果，true表示成功，false表示失败
     **/
    int delete(Map map);
}